package operate

import (
	"fmt"

	"github.com/asaskevich/govalidator"
)

/*OperateInfo 用户操作日志信息
UserName 用户登录名(拼音简写)
LogModule 操作模块
LogContent 操作内容
RequestURL 请求url
RequestBody 请求body
UserIP  用户ip
Etentions 扩展字段
*/
type OperateInfo struct {
	UserName    string `json:"user_name"`
	UserID      int64  `json:"user_id"`
	LogModule   string `json:"log_module" valid:"required"`
	LogContent  string `json:"log_content" valid:"required"`
	RequestURL  string `json:"req_url"`
	RequestBody string `json:"req_body"`
	UserIP      string `json:"user_ip"`
	Etentions   map[string]string
}

//Valid 验证输入参数是否合法
func (c *OperateInfo) Valid() error {
	if b, err := govalidator.ValidateStruct(c); !b {
		return fmt.Errorf("参数传入有误有误:%v", err)
	}
	return nil
}
